"""
SparkContext 类对象 式PySpark编程中一切功能的入口
PySpark的编程，主要分为如下三大步骤：
①数据输入：通过SparkContext类对象的成员方法，完成数据的读取操作，读取后得到RDD类对象
②数据处理计算： 通过RDD类对象的成员方法，完成各种数据计算的需求
③数据输出：将处理完成后的RDD对象，调用各种成员方法，写出文件，转为list等操作

"""
from pyspark import SparkConf, SparkContext

# 创建SparkConf 对象
spark_conf = SparkConf().setMaster(value="local[*]").setAppName("test_spark")

# 创建sparkContext对象
spark_context = SparkContext(conf=spark_conf)

# 数据输入，转为RDD对象,RDD就是数据计算的载体
rdd1 = spark_context.parallelize([1, 2, 3, 4, 5])
rdd2 = spark_context.parallelize((1, 2, 3, 4, 5))
rdd3 = spark_context.parallelize({1, 2, 3, 4, 5})
rdd4 = spark_context.parallelize("abcdedf")
rdd5 = spark_context.parallelize({'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5})
rdd6 = spark_context.textFile(name="./01_start.py")

# 查看RDD内容，使用collect()方法
print(rdd1.collect())
print(rdd2.collect())
print(rdd3.collect())
print(rdd4.collect())  # ['a', 'b', 'c', 'd', 'e', 'd', 'f']
print(rdd5.collect())  # ['a', 'b', 'c', 'd', 'e'] 只有key
print(rdd6.collect())


spark_context.stop()
